package com.kingmed.kmss.admin.modules.ums.model;

import com.baomidou.mybatisplus.annotation.*;
import com.kingmed.kmss.common.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Set;

/**
 * <p>
 * 后台用户角色表
 * </p>
 */
@Data
@TableName("ums_role")
@ApiModel(value = "UmsRole对象", description = "后台用户角色表")
public class UmsRole extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("名称")
    @NotEmpty
    private String roleName;

    /**
     * 角色代码
     */
    @ApiModelProperty("角色代码")
    @NotEmpty
    private String roleKey;

    @ApiModelProperty("描述")
    private String description;

    @ApiModelProperty("后台用户数量")
    private Integer adminCount;

    @ApiModelProperty("启用状态：0->禁用；1->启用")
    private Integer status;

    @ApiModelProperty("排序")
    private Integer sort;

    /**
     * 数据范围（0：自定义；1：集团；2：大区；3：子公司）
     */
    @ApiModelProperty("数据范围（0：自定义；1：集团；2：大区；3：子公司）")
    private String dataScope;

    /**
     * 菜单组
     */
    @ApiModelProperty("菜单组")
    @TableField(exist = false)
    private Long[] menuIds;

    /**
     * 资源组
     */
    @ApiModelProperty("资源组")
    @TableField(exist = false)
    private Long[] resourceIds;

    /**
     * 角色菜单权限
     */
    @ApiModelProperty("角色菜单权限")
    @TableField(exist = false)
    private Set<String> menus;

    /**
     * 角色资源权限
     */
    @ApiModelProperty("角色资源权限")
    @TableField(exist = false)
    private Set<String> resources;

    /**
     * 部门组（数据权限）
     */
    @ApiModelProperty("部门组（数据权限）")
    @TableField(exist = false)
    private Long[] orgIds;

    @ApiModelProperty("删除标记")
    @TableField
    @TableLogic(value = "0", delval = "1")
    private Integer deleteFlag;
}
